package com.xjy.system.domain;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import javax.persistence.Id;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 资金账户变更明细信息对象 sys_fundaccountdetail
 *
 * @author xjy
 * @date 2022-03-10
 */
@Data
@NoArgsConstructor
@Accessors(chain = true)
@TableName("sys_fundaccountdetail")
public class SysFundaccountdetail implements Serializable {

	private static final long serialVersionUID = 1L;



	/** ID */
	@Id
	@TableId(value = "id")
	private Long id;

	/** 关联项目 */
	private Long projId;

	/** 关联合同，可能为空 */
	private Long contractId;

	/** 项目名称 */
	private String projName;

	/** 关联合同结算项目，可能为空 */
	private Long settleProj;

	/** 合同名称 */
	private String contractName;

	/** 关联预算科目，可能为空 */
	private Long subjectId;

	/** 账户ID */
	private Long accId;

	/** 资金变更流水号 */
	private String transactionId;

	/** 结算项目名称 */
	private String settleProjName;

	/** 交易发出方 */
	private String sender;

	/** 交易发出方ID */
	private Long senderId;

	/** 科目名称 */
	private String subjectName;

	/** 交易接收方 */
	private String receive;

	/** 账户名称 */
	private String accountName;

	/** 交易接收方ID */
	private Long receiveId;

	/** 账户开户行 */
	private String accountBank;

	/** 经办人 */
	private String manager;

	/** 账户号码 */
	private String accountNo;

	/** 经办人ID */
	private Long managerId;

	/** 0：收入(+)，1：支出(-) */
	private Long category;

	/** 账户交易日期 */
	private Date transactionDate;
	@ApiModelProperty("账户交易前金额")
	private BigDecimal beiginbalance;

	@ApiModelProperty("账户交易发生金额")
	private BigDecimal amount;

	@ApiModelProperty("账户交易后余额")
	private BigDecimal endbalance;

	/** 备注 */
	private String remarks;

	/** 更新时间 */
	@TableField(fill = FieldFill.INSERT_UPDATE)
	private Date updateTime;

	/** 交易类型：0：现金，1：银行 */
	private Integer transactionType;

	/** 交易类型 0：收取押金、1：支付押金、2：预付账款、3：个人借款、4：支付报销、5：冲销借款，6：冲销预付，7：账户收款、8：其它 */
	private Long transactionCategory;

	/** 审核状态 0：未审核；1：审核（默认） */
	private Boolean auditStatus;

}
